"""
@Time: 2024/3/15 10:55
@Auther: hwx
@Desc: 04-列表的常用操作方法

列表除了可以：
 · 定义
 · 使用下标索引获取值

以外，列表也提供了一系列功能：
 · 插入元素
 · 删除元素
 · 清空列表
 · 修改元素
 · 统计元素个数
等等功能，这些功能我们都称之为：列素的方法


注意：
函数和方法的定义是不同的：
- 如果方法写在class中，作为类的成员它就叫函数
- 如果方法写在class外，它就叫方法

使用调用方式也不同：
- 函数是通过：函数名(实参1，实参2，...)
- 方法是通过：对象名.方法名(实参1，实参2，...)
"""

print("========================= 查找")
mylist = ["itcast", "itheima", "python"]

# 1.1查找某元素在列表内的下标素引
index = mylist.index("itheima")
print(f"itheima在列表中的下标索引值是：{index}")

# # 1.2如果被查找的元素不存在，会报错
# index = mylist.index("hello")
# print(f"hello在列表中的下标索引值是：{index}")

print("========================= 修改")
# 2.修改特定下标索引的值
mylist[0] = "传智教育"
print(f"列表被修改元素值后，结果是：{mylist}")

print("========================= 插入")
# 3.在指定下标位置插入新元素
mylist.insert(1, "best")
print(f"列表插入元素后，结果是：{mylist}")

print("========================= 尾部追加插入单个")
# 4.在列表的尾部追加'''单个'''新元素
mylist.append("黑马程序员")
print(f"列表在追加了元素后，结果是：{mylist}")

print("========================= 尾部追加插入多个")
# 5.在列表的尾部追加'''一批'''新元素
mylist2 = [1, 2, 3]
mylist.extend(mylist2)
print(f"列表在追加了一个新的列表后，结果是：{mylist}")

print("========================= 删除指定下标索引的元素")
# 6.删除指定下标索引的元素(2种方式)
# 6.1 方式1:de1列表[下标]
del mylist[2]
print(f"列表删除元素后结果是：{mylist}")

# 6.2 方式2：列表.pop(下标)
mylist = ["itcast", "itheima", "python"]
element = mylist.pop(2)
print(f"通过pop方法取出元素后列表内容：{mylist}，取出的元素是：{element}")

print("========================= 删除某元素在列表中的第一个匹配项")
# 7 删除某元素在列表中的第一个匹配项
mylist = ["itcast", "itheima", "itcast", "itheima", "python"]
mylist.remove("itheima")
print(f"通过remove方法移除首个元素itheima后，列表的结果是：{mylist}")

print("========================= 清空列表")
# 8.清空列表
mylist.clear()
print(f"列表被清空了，结果是：{mylist}")

print("========================= 元素计数")
# 9.统计列表内某元素的数量
mylist = ["itcast", "itheima", "itcast", "itheima", "python"]
count = mylist.count("itheima")
print(f"列表中itheimaf的数量是：{count}")

print("========================= 统计列表元素总数(求大小)")
# 10.统计列表中全部的元素数量
mylist = ["itcast", "itheima", "itcast", "itheima", "python"]
count = len(mylist)
print(f"列表的元素数量总共有：{count}个")
